/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.mybeans;

import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author avbravo
 */
public class RegimenContribuyentesBeans {

    Sesion sesion;
    static String cedula;
    static String idRegimen;
    static Double valor;
    static String regimen;
    static String periodoPago;
    static String mesPago;

    static int    idRecibo;
   static String Pagado;

   
    
    //usados para el registro mensual
    static int anio;
    static String mes;
    static int NumeroMes;
    static java.sql.Date fechaInscripcion;
    static List<String> ListaIdRegimen = new ArrayList<String>();
    static List<String> ListaRegimen = new ArrayList<String>();
    static List<String> ListaValor = new ArrayList<String>();
    static List<String> ListaPeriodoPago = new ArrayList<String>();
    static List<String> ListaMesPago = new ArrayList<String>();
    static List<String> ListaFechaIngreso = new ArrayList<String>();
    static int NumeroRegistrosLista = -1;

    public static int getNumeroMes() {
        return NumeroMes;
    }

    public static void setNumeroMes(int NumeroMes) {
        RegimenContribuyentesBeans.NumeroMes = NumeroMes;
    }

    

     public static String getPagado() {
        return Pagado;
    }

    public static void setPagado(String Pagado) {
        RegimenContribuyentesBeans.Pagado = Pagado;
    }
    public static int getIdRecibo() {
        return idRecibo;
    }

    public static void setIdRecibo(int idRecibo) {
        RegimenContribuyentesBeans.idRecibo = idRecibo;
    }
    public static String getCedula() {
        return cedula;
    }

    public static void setCedula(String cedula) {
        RegimenContribuyentesBeans.cedula = cedula;
    }

    public static Date getFechaInscripcion() {
        return fechaInscripcion;
    }

    public static void setFechaInscripcion(Date fechaInscripcion) {
        RegimenContribuyentesBeans.fechaInscripcion = fechaInscripcion;
    }

    public static List<String> getListaFechaIngreso() {
        return ListaFechaIngreso;
    }

    public static void setListaFechaIngreso(List<String> ListaFechaIngreso) {
        RegimenContribuyentesBeans.ListaFechaIngreso = ListaFechaIngreso;
    }

    public static int getNumeroRegistrosLista() {
        return NumeroRegistrosLista;
    }

    public static void setNumeroRegistrosLista(int NumeroRegistrosLista) {
        RegimenContribuyentesBeans.NumeroRegistrosLista = NumeroRegistrosLista;
    }

    public RegimenContribuyentesBeans() {
        sesion = new Sesion();

    }

    public List<String> getListaValor() {
        return ListaValor;
    }

    public void setListaValor(List<String> ListaValor) {
        this.ListaValor = ListaValor;
    }

    public List<String> getListaIdRegimen() {
        return ListaIdRegimen;
    }

    public void setListaIdRegimen(List<String> ListaIdRegimen) {
        this.ListaIdRegimen = ListaIdRegimen;
    }

    public List<String> getListaMesPago() {
        return ListaMesPago;
    }

    public void setListaMesPago(List<String> ListaMesPago) {
        this.ListaMesPago = ListaMesPago;
    }

    public List<String> getListaPeriodoPago() {
        return ListaPeriodoPago;
    }

    public void setListaPeriodoPago(List<String> ListaPeriodoPago) {
        this.ListaPeriodoPago = ListaPeriodoPago;
    }

    public List<String> getListaRegimen() {
        return ListaRegimen;
    }

    public void setListaRegimen(List<String> ListaRegimen) {
        this.ListaRegimen = ListaRegimen;
    }

    public static String getIdRegimen() {
        return idRegimen;
    }

    public static void setIdRegimen(String idRegimen) {
        RegimenContribuyentesBeans.idRegimen = idRegimen;
    }

    public static String getMesPago() {
        return mesPago;
    }

    public static void setMesPago(String mesPago) {
        RegimenContribuyentesBeans.mesPago = mesPago;
    }

    public static String getPeriodoPago() {
        return periodoPago;
    }

    public static void setPeriodoPago(String periodoPago) {
        RegimenContribuyentesBeans.periodoPago = periodoPago;
    }

    public static String getRegimen() {
        return regimen;
    }

    public static void setRegimen(String regimen) {
        RegimenContribuyentesBeans.regimen = regimen;
    }

    public static Double getValor() {
        return valor;
    }

    public static void setValor(Double valor) {
        RegimenContribuyentesBeans.valor = valor;
    }

    public static int getAnio() {
        return anio;
    }

    public static void setAnio(int anio) {
        RegimenContribuyentesBeans.anio = anio;
    }

    public static String getMes() {
        return mes;
    }

    public static void setMes(String mes) {
        RegimenContribuyentesBeans.mes = mes;
    }
    /*
     * 
     * Verificar si existe el registro
     * 
     */

    public boolean VerificarExiste() {
        try {
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            String sqlquery = "select * from regimencontribuyentes where idmunicipio = ? and cedula =? and idregimen =?  ";
            PreparedStatement psquery = sesion.con.prepareStatement(sqlquery);
            psquery.setString(1, sesion.getIdmunicipio());
            psquery.setString(2, getCedula());
            psquery.setString(3, getIdRegimen());
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();

            if (x != 0) {
                String activo = rs.getString("activo");
                if (activo.equals("no")) {
                    JOptionPane.showMessageDialog(null, "Este impuesto ya fue asignado a este contribuyente pero esta inactivo. Utilice la opcion de activar", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                     sesion.con.close();
                    return true;
                }
                 sesion.con.close();
                return true;
            } else {
                 sesion.con.close();
                return false;
            }

        } catch (Exception ex) {
             sesion.MostrarMensajeError("Error ", "Clase: RegimenContribuyentesBeans.java\n VerificarExiste()\n " + ex.getMessage().toString());
        }
        return false;
    }


    /*
     *
     * Verificar si existe el registro sin mensaje
     *
     */

    
    /*
     * 
     *Agregar impuestos 
     * 
     */
    public boolean Agregar() {
        try {
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                return false;
            }
            String sql = "INSERT into regimencontribuyentes  VALUES(?,?,?,?,?,?,?,?,?,?)";
            PreparedStatement prest = sesion.con.prepareStatement(sql);

            prest.setString(1, getCedula());
            prest.setString(2, getIdRegimen());
            prest.setDouble(3, getValor());
            prest.setString(4, getPeriodoPago());
            prest.setString(5, getMesPago());

            prest.setDate(6, getFechaInscripcion());
            prest.setString(7, sesion.getUsername());
            java.util.Calendar ca = java.util.Calendar.getInstance();
            java.sql.Date mydate = new java.sql.Date(ca.getTimeInMillis());
            prest.setDate(8, mydate);
            prest.setString(9, "si");
            prest.setString(10, sesion.getIdmunicipio());
            int count = prest.executeUpdate();

            sesion.con.close();
            JOptionPane.showMessageDialog(null, "Regimen guardado exitosamente", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
            return true;

        } catch (Exception ex) {
            sesion.MostrarMensajeError("Error ", "Clase: RegimenContribuyentesBeans.java\n Agregar()\n " + ex.getMessage().toString());
        }
        return false;
    }
   

   
    /*
     * 
     * carga las listas con los impuestos
     */

    public boolean CargarImpuestosPorContribuyente(String cedula) {
        try {
            NumeroRegistrosLista = -1;
            
        
                    ListaIdRegimen.removeAll(ListaIdRegimen);
                    ListaRegimen.removeAll(ListaRegimen);
                    ListaValor.removeAll(ListaValor);
                    ListaPeriodoPago.removeAll(ListaPeriodoPago);
                    ListaMesPago.removeAll(ListaMesPago);
          

            String idMunicipio = sesion.getIdmunicipio();
            String sql = "select regimencontribuyentes.*, regimen.regimen from  regimencontribuyentes, regimen where regimencontribuyentes.idmunicipio='" + idMunicipio + "' and regimencontribuyentes.cedula ='" + cedula + "' and regimencontribuyentes.activo='si' and regimencontribuyentes.idregimen = regimen.idregimen and  regimen.activo='si' and regimen.idmunicipio='" + idMunicipio + "'";
            if (sesion.Conectar() == false) {
                JOptionPane.showMessageDialog(null, "No se pudo establecer la conexion", "Mensaje", JOptionPane.INFORMATION_MESSAGE);
                 sesion.con.close();
                return false;
            }

            PreparedStatement psquery = sesion.con.prepareStatement(sql);
            ResultSet rs = psquery.executeQuery();
            rs.next();
            int x = rs.getRow();
            if (x == 0) {
                sesion.con.close();
                return false;
            }
            NumeroRegistrosLista++;
            ListaIdRegimen.add(rs.getString("idregimen"));
            ListaRegimen.add(rs.getString("regimen"));
            ListaValor.add(rs.getString("valor"));
            String periodoPago = rs.getString("periodopago");
            periodoPago = periodoPago.toLowerCase();
          
            ListaPeriodoPago.add(periodoPago);
            String mesPago = rs.getString("mespago");
            mesPago = mesPago.toLowerCase();
            ListaMesPago.add(mesPago);
            /*
            List<String> v = new ArrayList<String>();
            v.add("test");
            Integer i = v.get(0);
             */
// Bucle para cada resultado en la consulta
            while (rs.next()) {
                ListaIdRegimen.add(rs.getString("idregimen"));
                ListaRegimen.add(rs.getString("regimen"));
                ListaValor.add(rs.getString("valor"));
                ListaPeriodoPago.add(rs.getString("periodopago"));
                ListaMesPago.add(rs.getString("mespago"));
                NumeroRegistrosLista++;

            }
             sesion.con.close();
            return true;
        } catch (Exception ex) {
             sesion.MostrarMensajeError("Error ", "Clase: RegimenContribuyentesBeans.java\n CargarImpuestosPorContribuyente()\n " + ex.getMessage().toString());

        }
        return false;
    }
}

